/*  Script for creating SQL Server tables for Active Data Online's WebForum application  */


CREATE TABLE tbl_WF_Forums
(
	fldForumID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
	fldForumName nvarchar(50) NOT NULL,
	fldForumDescription nvarchar(200) NOT NULL,
	fldModerator nvarchar(20) NULL,
	fldCountTopics int DEFAULT 0 NOT NULL,
	fldCountMessages int DEFAULT 0 NOT NULL,
	fldLastMessageBy nvarchar(20) NULL,
	fldLastMessageAt datetime NULL,
	fldCreated datetime NOT NULL,
	fldUpdated datetime NULL,
	fldSuspended bit DEFAULT 0 NOT NULL
)


CREATE TABLE tbl_WF_Topics
(
	fldTopicID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
	fldForumID int NOT NULL,
	fldDescription nvarchar(50) NOT NULL,
	fldPostedBy nvarchar(20) NOT NULL,
	fldPostedAt datetime NOT NULL,
	fldReadOnly bit DEFAULT 0 NOT NULL,
	fldSuspended bit DEFAULT 0 NOT NULL,
	fldCountRead int DEFAULT 0 NOT NULL,
	fldCountMessages int DEFAULT 0 NOT NULL,
	fldLastMessageBy nvarchar(20) NULL,
	fldLastMessageAt datetime NULL
)


CREATE TABLE tbl_WF_Messages
(
	fldMessageID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
	fldTopicID int NOT NULL,
	fldReplyTo int NULL,
	fldMessage nvarchar(2000) NOT NULL,
	fldFileAttachmentName nvarchar(100) NULL,
	fldFileAttachmentFile nvarchar(50) NULL,
	fldPostedBy nvarchar(20) NOT NULL,
	fldPostedAt datetime NOT NULL,
	fldDeleted bit DEFAULT 0 NOT NULL,
	fldEditedBy nvarchar(20) NULL,
	fldEditedAt datetime NULL
)


CREATE TABLE tbl_WF_Icons
(
	fldIconID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
	fldIconFile nvarchar(50) NOT NULL,
	fldIconDescription nvarchar(100) NULL,
	fldAvailable bit DEFAULT 1 NOT NULL,
	fldCreatedBy nvarchar(20) NOT NULL,
	fldCreatedAt datetime NOT NULL,
	fldModifiedBy nvarchar(20) NULL,
	fldModifiedAt datetime NULL
)


CREATE TABLE tbl_WF_Members
(
	fldMemberName nvarchar(20) NOT NULL PRIMARY KEY,
	fldPassword nvarchar(20) NOT NULL,
	fldMemberTypeID tinyint NOT NULL,
	fldEmail nvarchar(50) NULL,
	fldOriginalEmail nvarchar(50) NULL,
	fldSurname nvarchar(50) NULL,
	fldGivenName nvarchar(50) NULL,
	fldLocation nvarchar(50) NULL,
	fldProfileInformation nvarchar(500) NULL,
	fldRemoteAddress nvarchar(100),
	fldUserAgent nvarchar(200),
	fldLastLogin datetime NULL,
	fldViewMessagesDesc bit DEFAULT 1 NOT NULL,
	fldSignature nvarchar(500) NULL,
	fldCreated datetime NOT NULL,
	fldUpdated datetime NULL,
	fldSuspended bit DEFAULT 0 NOT NULL,
	fldReadOnly bit DEFAULT 0 NOT NULL
)


CREATE TABLE tbl_WF_Register
(
	fldRegisterID nvarchar(50) NOT NULL PRIMARY KEY,
	fldMemberName nvarchar(20) NOT NULL,
	fldEmail nvarchar(50) NOT NULL,
	fldAdded datetime NULL
)


CREATE TABLE tbl_WF_BannedWords
(
	fldWord nvarchar(30) NOT NULL PRIMARY KEY,
	fldCreated datetime NOT NULL,
	fldUpdated datetime NULL
)

